package com.itheima.mapper;

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;
import java.util.Map;

// 这个接口中的方法都是用来操作user表
public interface UserMapper {
    // 查询所有用户
    List<User> findAllUsers();

    // 根据用户ID查询用户
    User selectById(int id);

    // 根据用户ID删除用户
    void deleteById(int id);

    // 修改用户
    void update(User user);

    // 新增用户
    void add(User user);

    // 多条件查询(散装参数): 通过用户名和性别查询用户
    List<User> selectByCondition(@Param("username") String username, @Param("sex") String sex);

    // 多条件查询(参数是对象): 通过用户名和性别查询用户
    // List<User> selectByCondition(User user);

    // 多条件查询(参数是Map): 通过用户名和性别查询用户 {键1=值1, 键2=值2}   {sex=男, username=%白%}   #{键} 取出键对应的值
    List<User> selectByCondition(Map<String, String> map);

    // 通过多个id删除多个用户
    void deleteByIds(@Param("ids") int[] ids);

    void testCollection(@Param("coll") Collection<String> coll);
}
